package com.gather.hashmaps;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Example02 {
    public static void main(String[] args) {
        System.out.println("HashMap基础使用");

        HashMap<String, String> map = new HashMap<>();
        // 添加元素 put()
        map.put("one","jack");
        map.put("two","tom");
        map.put("three","kerry");
        map.put("four","Google");
        System.out.println(map); // {four=Google, one=jack, two=tom, three=kerry}
        // 获取元素 get()
        System.out.println(map.get("one")); // jack
        // 是否存在某个 key
        boolean one = map.containsKey("one");
        System.out.println(one?"存在":"不存在");
        // 是否存在某个 value
        boolean tom = map.containsValue("tom");
        System.out.println(tom?"存在":"不存在");
        // 修改某个 key的值
        map.replace("one","ceshi");
        System.out.println(map.get("one"));
        // 删除元素 remove()
        map.remove("two");
        System.out.println(map); // {four=Google, one=jack, three=kerry}
        // 获取集合长度 size()
        System.out.println(map.size()); // 3
        // 清除所有的值
        map.clear(); // {}
        // 判断集合是否空
        boolean empty = map.isEmpty();
        System.out.println(empty?"空集合":"集合不为空");
        // 迭代元素
        //Set<Map.Entry<String, String>> entries = map.entrySet();
        //for (Map.Entry<String, String> entry : entries) {
        //    System.out.println(entry.getKey()+":"+entry.getValue());
        //}

        //Iterator<Map.Entry<String, String>> iterator = entries.iterator();
        //while (iterator.hasNext()) {
        //    Map.Entry<String, String> next =  iterator.next();
        //    // 获取 key
        //    String key = next.getKey();
        //    System.out.println(key);
        //    // 获取 value
        //    String value = next.getValue();
        //    System.out.println(value);
        //}

        // 超级简化版本
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
    }
}
